diff --git a/system/core/Common.php b/system/core/Common.php
index 11ff4ba..bd187dc 100644
--- a/system/core/Common.php
+++ b/system/core/Common.php
@@ -345,24 +345,24 @@
 	 * @return	bool
 	 */
 	function is_https()
-    {
-        if(isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) === 'on')
-        {
-            return TRUE;
-        }
-        elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
-        {
-            return TRUE;
-        }
-        elseif (isset($_SERVER['HTTP_FRONT_END_HTTPS']) && $_SERVER['HTTP_FRONT_END_HTTPS'] == 'on')
-        {
-            return TRUE;
-        }
-        else
-        {
-            return FALSE;
-        }
-    }
+	{
+		if(isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) === 'on')
+		{
+			return TRUE;
+		}
+		elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
+		{
+			return TRUE;
+		}
+		elseif (isset($_SERVER['HTTP_FRONT_END_HTTPS']) && $_SERVER['HTTP_FRONT_END_HTTPS'] == 'on')
+		{
+			return TRUE;
+		}
+		else
+		{
+			return FALSE;
+		}
+	}
 }
 
 // ------------------------------------------------------------------------
